home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK1.toast / Development Kits (Disc 1) / QuickDraw 3D / Development / Interfaces / QD3DPascalInterfaces / QD3DLight.p < prev    next >
Encoding:
Text File  |  1996-11-15  |  8.6 KB  |  206 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        QD3DLight.p
  3.  
  4.      Contains:    Generic light routines                                             
  5.  
  6.      Version:    Technology:    Quickdraw 3D 1.0.6
  7.                  Release:    Universal Interfaces 2.1.5d1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT QD3DLight;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __QD3DLIGHT__}
  28. {$SETC __QD3DLIGHT__ := 1}
  29.  
  30. {$I+}
  31. {$SETC QD3DLightIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __QD3D__}
  35. {$I QD3D.p}
  36. {$ENDC}
  37.  
  38. {$PUSH}
  39. {$ALIGN POWER}
  40. {$LibExport+}
  41.  
  42. {
  43. *****************************************************************************
  44.  **                                                                             **
  45.  **                            Enum Definitions                                 **
  46.  **                                                                             **
  47.  ****************************************************************************
  48. }
  49.  
  50. TYPE
  51.     TQ3AttenuationType             = LONGINT;
  52. CONST
  53.     kQ3AttenuationTypeNone        = {TQ3AttenuationType}0;
  54.     kQ3AttenuationTypeInverseDistance = {TQ3AttenuationType}1;
  55.     kQ3AttenuationTypeInverseDistanceSquared = {TQ3AttenuationType}2;
  56.  
  57.  
  58. TYPE
  59.     TQ3FallOffType                 = LONGINT;
  60. CONST
  61.     kQ3FallOffTypeNone            = {TQ3FallOffType}0;
  62.     kQ3FallOffTypeLinear        = {TQ3FallOffType}1;
  63.     kQ3FallOffTypeExponential    = {TQ3FallOffType}2;
  64.     kQ3FallOffTypeCosine        = {TQ3FallOffType}3;
  65.  
  66. {
  67. *****************************************************************************
  68.  **                                                                             **
  69.  **                            Data Structure Definitions                         **
  70.  **                                                                             **
  71.  ****************************************************************************
  72. }
  73.  
  74. TYPE
  75.     TQ3LightDataPtr = ^TQ3LightData;
  76.     TQ3LightData = RECORD
  77.         isOn:                    TQ3Boolean;
  78.         brightness:                Single;
  79.         color:                    TQ3ColorRGB;
  80.     END;
  81.  
  82.     TQ3DirectionalLightDataPtr = ^TQ3DirectionalLightData;
  83.     TQ3DirectionalLightData = RECORD
  84.         lightData:                TQ3LightData;
  85.         castsShadows:            TQ3Boolean;
  86.         direction:                TQ3Vector3D;
  87.     END;
  88.  
  89.     TQ3PointLightDataPtr = ^TQ3PointLightData;
  90.     TQ3PointLightData = RECORD
  91.         lightData:                TQ3LightData;
  92.         castsShadows:            TQ3Boolean;
  93.         attenuation:            TQ3AttenuationType;
  94.         location:                TQ3Point3D;
  95.     END;
  96.  
  97.     TQ3SpotLightDataPtr = ^TQ3SpotLightData;
  98.     TQ3SpotLightData = RECORD
  99.         lightData:                TQ3LightData;
  100.         castsShadows:            TQ3Boolean;
  101.         attenuation:            TQ3AttenuationType;
  102.         location:                TQ3Point3D;
  103.         direction:                TQ3Vector3D;
  104.         hotAngle:                Single;
  105.         outerAngle:                Single;
  106.         fallOff:                TQ3FallOffType;
  107.     END;
  108.  
  109. {
  110. *****************************************************************************
  111.  **                                                                             **
  112.  **                    Light routines (apply to all TQ3LightObjects)             **
  113.  **                                                                             **
  114.  ****************************************************************************
  115. }
  116. FUNCTION Q3Light_GetType(light: TQ3LightObject): TQ3ObjectType; C;
  117. FUNCTION Q3Light_GetState(light: TQ3LightObject; VAR isOn: TQ3Boolean): TQ3Status; C;
  118. FUNCTION Q3Light_GetBrightness(light: TQ3LightObject; VAR brightness: Single): TQ3Status; C;
  119. FUNCTION Q3Light_GetColor(light: TQ3LightObject; VAR color: TQ3ColorRGB): TQ3Status; C;
  120. FUNCTION Q3Light_SetState(light: TQ3LightObject; isOn: TQ3Boolean): TQ3Status; C;
  121. FUNCTION Q3Light_SetBrightness(light: TQ3LightObject; brightness: Single): TQ3Status; C;
  122. FUNCTION Q3Light_SetColor(light: TQ3LightObject; {CONST}VAR color: TQ3ColorRGB): TQ3Status; C;
  123. FUNCTION Q3Light_GetData(light: TQ3LightObject; VAR lightData: TQ3LightData): TQ3Status; C;
  124. FUNCTION Q3Light_SetData(light: TQ3LightObject; {CONST}VAR lightData: TQ3LightData): TQ3Status; C;
  125. {
  126. *****************************************************************************
  127.  **                                                                             **
  128.  **                            Specific Light Routines                               **
  129.  **                                                                             **
  130.  ****************************************************************************
  131. }
  132. {
  133. *****************************************************************************
  134.  **                                                                             **
  135.  **                            Ambient Light                                       **
  136.  **                                                                             **
  137.  ****************************************************************************
  138. }
  139. FUNCTION Q3AmbientLight_New({CONST}VAR lightData: TQ3LightData): TQ3LightObject; C;
  140. FUNCTION Q3AmbientLight_GetData(light: TQ3LightObject; VAR lightData: TQ3LightData): TQ3Status; C;
  141. FUNCTION Q3AmbientLight_SetData(light: TQ3LightObject; {CONST}VAR lightData: TQ3LightData): TQ3Status; C;
  142. {
  143. *****************************************************************************
  144.  **                                                                             **
  145.  **                        Directional Light                                     **
  146.  **                                                                             **
  147.  ****************************************************************************
  148. }
  149. FUNCTION Q3DirectionalLight_New({CONST}VAR directionalLightData: TQ3DirectionalLightData): TQ3LightObject; C;
  150. FUNCTION Q3DirectionalLight_GetCastShadowsState(light: TQ3LightObject; VAR castsShadows: TQ3Boolean): TQ3Status; C;
  151. FUNCTION Q3DirectionalLight_GetDirection(light: TQ3LightObject; VAR direction: TQ3Vector3D): TQ3Status; C;
  152. FUNCTION Q3DirectionalLight_SetCastShadowsState(light: TQ3LightObject; castsShadows: TQ3Boolean): TQ3Status; C;
  153. FUNCTION Q3DirectionalLight_SetDirection(light: TQ3LightObject; {CONST}VAR direction: TQ3Vector3D): TQ3Status; C;
  154. FUNCTION Q3DirectionalLight_GetData(light: TQ3LightObject; VAR directionalLightData: TQ3DirectionalLightData): TQ3Status; C;
  155. FUNCTION Q3DirectionalLight_SetData(light: TQ3LightObject; {CONST}VAR directionalLightData: TQ3DirectionalLightData): TQ3Status; C;
  156. {
  157. *****************************************************************************
  158.  **                                                                             **
  159.  **                        Point Light                                              **
  160.  **                                                                             **
  161.  ****************************************************************************
  162. }
  163. FUNCTION Q3PointLight_New({CONST}VAR pointLightData: TQ3PointLightData): TQ3LightObject; C;
  164. FUNCTION Q3PointLight_GetCastShadowsState(light: TQ3LightObject; VAR castsShadows: TQ3Boolean): TQ3Status; C;
  165. FUNCTION Q3PointLight_GetAttenuation(light: TQ3LightObject; VAR attenuation: TQ3AttenuationType): TQ3Status; C;
  166. FUNCTION Q3PointLight_GetLocation(light: TQ3LightObject; VAR location: TQ3Point3D): TQ3Status; C;
  167. FUNCTION Q3PointLight_GetData(light: TQ3LightObject; VAR pointLightData: TQ3PointLightData): TQ3Status; C;
  168. FUNCTION Q3PointLight_SetCastShadowsState(light: TQ3LightObject; castsShadows: TQ3Boolean): TQ3Status; C;
  169. FUNCTION Q3PointLight_SetAttenuation(light: TQ3LightObject; attenuation: TQ3AttenuationType): TQ3Status; C;
  170. FUNCTION Q3PointLight_SetLocation(light: TQ3LightObject; {CONST}VAR location: TQ3Point3D): TQ3Status; C;
  171. FUNCTION Q3PointLight_SetData(light: TQ3LightObject; {CONST}VAR pointLightData: TQ3PointLightData): TQ3Status; C;
  172. {
  173. *****************************************************************************
  174.  **                                                                             **
  175.  **                        Spot Light                                              **
  176.  **                                                                             **
  177.  ****************************************************************************
  178. }
  179. FUNCTION Q3SpotLight_New({CONST}VAR spotLightData: TQ3SpotLightData): TQ3LightObject; C;
  180. FUNCTION Q3SpotLight_GetCastShadowsState(light: TQ3LightObject; VAR castsShadows: TQ3Boolean): TQ3Status; C;
  181. FUNCTION Q3SpotLight_GetAttenuation(light: TQ3LightObject; VAR attenuation: TQ3AttenuationType): TQ3Status; C;
  182. FUNCTION Q3SpotLight_GetLocation(light: TQ3LightObject; VAR location: TQ3Point3D): TQ3Status; C;
  183. FUNCTION Q3SpotLight_GetDirection(light: TQ3LightObject; VAR direction: TQ3Vector3D): TQ3Status; C;
  184. FUNCTION Q3SpotLight_GetHotAngle(light: TQ3LightObject; VAR hotAngle: Single): TQ3Status; C;
  185. FUNCTION Q3SpotLight_GetOuterAngle(light: TQ3LightObject; VAR outerAngle: Single): TQ3Status; C;
  186. FUNCTION Q3SpotLight_GetFallOff(light: TQ3LightObject; VAR fallOff: TQ3FallOffType): TQ3Status; C;
  187. FUNCTION Q3SpotLight_GetData(light: TQ3LightObject; VAR spotLightData: TQ3SpotLightData): TQ3Status; C;
  188. FUNCTION Q3SpotLight_SetCastShadowsState(light: TQ3LightObject; castsShadows: TQ3Boolean): TQ3Status; C;
  189. FUNCTION Q3SpotLight_SetAttenuation(light: TQ3LightObject; attenuation: TQ3AttenuationType): TQ3Status; C;
  190. FUNCTION Q3SpotLight_SetLocation(light: TQ3LightObject; {CONST}VAR location: TQ3Point3D): TQ3Status; C;
  191. FUNCTION Q3SpotLight_SetDirection(light: TQ3LightObject; {CONST}VAR direction: TQ3Vector3D): TQ3Status; C;
  192. FUNCTION Q3SpotLight_SetHotAngle(light: TQ3LightObject; hotAngle: Single): TQ3Status; C;
  193. FUNCTION Q3SpotLight_SetOuterAngle(light: TQ3LightObject; outerAngle: Single): TQ3Status; C;
  194. FUNCTION Q3SpotLight_SetFallOff(light: TQ3LightObject; fallOff: TQ3FallOffType): TQ3Status; C;
  195. FUNCTION Q3SpotLight_SetData(light: TQ3LightObject; {CONST}VAR spotLightData: TQ3SpotLightData): TQ3Status; C;
  196. {$ALIGN RESET}
  197. {$POP}
  198.  
  199. {$SETC UsingIncludes := QD3DLightIncludes}
  200.  
  201. {$ENDC} {__QD3DLIGHT__}
  202.  
  203. {$IFC NOT UsingIncludes}
  204.  END.
  205. {$ENDC}
  206.